package com.wkg.lotterysystem.service.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 用户身份枚举
 * 定义系统中不同类型的用户身份及其描述信息
 */
@Getter // Lombok注解，自动生成getter方法
@AllArgsConstructor // Lombok注解，生成全参数构造函数
public enum UserIdentityEnum {
    /**
     * 管理员身份
     */
    ADMIN("管理员"),

    /**
     * 普通用户身份
     */
    NORMAL("普通用户");

    /**
     * 身份描述信息
     */
    private final String message;

    /**
     * 根据名称查找对应的枚举实例（不区分大小写）
     * @param name 枚举名称（如"ADMIN"或"admin"）
     * @return 匹配的枚举实例，未找到时返回null
     */
    public static UserIdentityEnum forName(String name) {
        // 遍历所有枚举值
        for (UserIdentityEnum userIdentityEnum : UserIdentityEnum.values()) {
            // 忽略大小写比较枚举名称
            if (userIdentityEnum.name().equalsIgnoreCase(name)) {
                return userIdentityEnum;
            }
        }
        return null;
    }
}
